home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / misc / mount / mount-pa.cd / mount-pa
Text File  |  1993-03-30  |  19KB  |  647 lines

  1. *** linux/boot/bootsect.S.~1~    Fri Feb 26 17:10:31 1993
  2. --- linux/boot/bootsect.S    Tue Mar 30 10:18:48 1993
  3. ***************
  4. *** 45,50 ****
  5. --- 45,53 ----
  6.   #ifndef RAMDISK
  7.   #define RAMDISK 0
  8.   #endif 
  9. + #ifndef CONFIG_ROOT_RDONLY
  10. + #define CONFIG_ROOT_RDONLY 0
  11. + #endif
  12.   
  13.   ! ld86 requires an entry symbol. This may as well be the usual one.
  14.   .globl    _main
  15. ***************
  16. *** 429,435 ****
  17.       .byte 13,10
  18.       .ascii "Loading"
  19.   
  20. ! .org 500
  21.   syssize:
  22.       .word SYSSIZE
  23.   swap_dev:
  24. --- 432,440 ----
  25.       .byte 13,10
  26.       .ascii "Loading"
  27.   
  28. ! .org 498
  29. ! root_flags:
  30. !     .word CONFIG_ROOT_RDONLY
  31.   syssize:
  32.       .word SYSSIZE
  33.   swap_dev:
  34. *** linux/config.in.~1~    Mon Mar 22 19:28:10 1993
  35. --- linux/config.in    Tue Mar 30 09:00:50 1993
  36. ***************
  37. *** 46,51 ****
  38. --- 46,53 ----
  39.   .
  40.   Filesystems
  41.   .
  42. + Mount root initially readonly
  43. + CONFIG_ROOT_RDONLY y/n n
  44.   Standard (minix) fs support
  45.   CONFIG_MINIX_FS y/n y
  46.   Extended fs support
  47. *** linux/fs/ext/inode.c.~1~    Mon Mar 29 22:33:16 1993
  48. --- linux/fs/ext/inode.c    Mon Mar 29 22:34:04 1993
  49. ***************
  50. *** 53,59 ****
  51.       ext_statfs
  52.   };
  53.   
  54. ! struct super_block *ext_read_super(struct super_block *s,void *data)
  55.   {
  56.       struct buffer_head *bh;
  57.       struct ext_super_block *es;
  58. --- 53,60 ----
  59.       ext_statfs
  60.   };
  61.   
  62. ! struct super_block *ext_read_super(struct super_block *s,void *data, 
  63. !                    int silent)
  64.   {
  65.       struct buffer_head *bh;
  66.       struct ext_super_block *es;
  67. ***************
  68. *** 82,88 ****
  69.       if (s->s_magic != EXT_SUPER_MAGIC) {
  70.           s->s_dev = 0;
  71.           unlock_super(s);
  72. !         printk("EXT-fs: magic match failed\n");
  73.           return NULL;
  74.       }
  75.       if (!s->u.ext_sb.s_firstfreeblocknumber)
  76. --- 83,91 ----
  77.       if (s->s_magic != EXT_SUPER_MAGIC) {
  78.           s->s_dev = 0;
  79.           unlock_super(s);
  80. !         if (!silent)
  81. !             printk("VFS: Can't find an extfs filesystem on dev 0x%04x.\n",
  82. !                    dev);
  83.           return NULL;
  84.       }
  85.       if (!s->u.ext_sb.s_firstfreeblocknumber)
  86. *** linux/fs/ext2/inode.c.~1~    Mon Mar 29 22:33:22 1993
  87. --- linux/fs/ext2/inode.c    Mon Mar 29 22:34:04 1993
  88. ***************
  89. *** 107,113 ****
  90.       return 1;
  91.   }
  92.   
  93. ! struct super_block * ext2_read_super (struct super_block * s, void * data)
  94.   {
  95.       struct buffer_head * bh;
  96.       struct ext2_super_block * es;
  97. --- 107,114 ----
  98.       return 1;
  99.   }
  100.   
  101. ! struct super_block * ext2_read_super (struct super_block * s, void * data,
  102. !                       int silent)
  103.   {
  104.       struct buffer_head * bh;
  105.       struct ext2_super_block * es;
  106. ***************
  107. *** 180,186 ****
  108.           s->s_dev = 0;
  109.           unlock_super (s);
  110.           brelse (bh);
  111. !         printk ("EXT2-fs: magic match failed\n");
  112.           return NULL;
  113.       }
  114.       if (s->s_blocksize != s->u.ext2_sb.s_frag_size) {
  115. --- 181,189 ----
  116.           s->s_dev = 0;
  117.           unlock_super (s);
  118.           brelse (bh);
  119. !         if (!silent)
  120. !             printk("VFS: Can't find an ext2fs filesystem on dev 0x%04x.\n",
  121. !                    dev);
  122.           return NULL;
  123.       }
  124.       if (s->s_blocksize != s->u.ext2_sb.s_frag_size) {
  125. *** linux/fs/isofs/inode.c.~1~    Mon Mar 29 22:33:17 1993
  126. --- linux/fs/isofs/inode.c    Mon Mar 29 22:34:04 1993
  127. ***************
  128. *** 91,97 ****
  129.       return 1;
  130.   }
  131.   
  132. ! struct super_block *isofs_read_super(struct super_block *s,void *data)
  133.   {
  134.       struct buffer_head *bh;
  135.       int iso_blknum;
  136. --- 91,98 ----
  137.       return 1;
  138.   }
  139.   
  140. ! struct super_block *isofs_read_super(struct super_block *s,void *data,
  141. !                      int silent)
  142.   {
  143.       struct buffer_head *bh;
  144.       int iso_blknum;
  145. ***************
  146. *** 155,161 ****
  147.           brelse(bh);
  148.             }
  149.       if(iso_blknum == 100) {
  150. !         printk("Unable to identify CD-ROM format.\n");
  151.           s->s_dev = 0;
  152.           unlock_super(s);
  153.           return NULL;
  154. --- 156,163 ----
  155.           brelse(bh);
  156.             }
  157.       if(iso_blknum == 100) {
  158. !         if (!silent)
  159. !             printk("Unable to identify CD-ROM format.\n");
  160.           s->s_dev = 0;
  161.           unlock_super(s);
  162.           return NULL;
  163. *** linux/fs/minix/inode.c.~1~    Mon Mar 29 22:33:17 1993
  164. --- linux/fs/minix/inode.c    Mon Mar 29 22:34:04 1993
  165. ***************
  166. *** 48,54 ****
  167.       minix_statfs
  168.   };
  169.   
  170. ! struct super_block *minix_read_super(struct super_block *s,void *data)
  171.   {
  172.       struct buffer_head *bh;
  173.       struct minix_super_block *ms;
  174. --- 48,55 ----
  175.       minix_statfs
  176.   };
  177.   
  178. ! struct super_block *minix_read_super(struct super_block *s,void *data, 
  179. !                      int silent)
  180.   {
  181.       struct buffer_head *bh;
  182.       struct minix_super_block *ms;
  183. ***************
  184. *** 83,89 ****
  185.       } else {
  186.           s->s_dev = 0;
  187.           unlock_super(s);
  188. !         printk("MINIX-fs magic match failed\n");
  189.           return NULL;
  190.       }
  191.       for (i=0;i < MINIX_I_MAP_SLOTS;i++)
  192. --- 84,92 ----
  193.       } else {
  194.           s->s_dev = 0;
  195.           unlock_super(s);
  196. !         if (!silent)
  197. !             printk("VFS: Can't find a minix filesystem on dev 0x%04x.\n",
  198. !                    dev);
  199.           return NULL;
  200.       }
  201.       for (i=0;i < MINIX_I_MAP_SLOTS;i++)
  202. *** linux/fs/msdos/inode.c.~1~    Mon Mar 29 22:33:18 1993
  203. --- linux/fs/msdos/inode.c    Mon Mar 29 22:57:26 1993
  204. ***************
  205. *** 136,142 ****
  206.   
  207.   /* Read the super block of an MS-DOS FS. */
  208.   
  209. ! struct super_block *msdos_read_super(struct super_block *s,void *data)
  210.   {
  211.       struct buffer_head *bh;
  212.       struct msdos_boot_sector *b;
  213. --- 136,143 ----
  214.   
  215.   /* Read the super block of an MS-DOS FS. */
  216.   
  217. ! struct super_block *msdos_read_super(struct super_block *s,void *data,
  218. !                      int silent)
  219.   {
  220.       struct buffer_head *bh;
  221.       struct msdos_boot_sector *b;
  222. ***************
  223. *** 221,228 ****
  224.               sectors),b->total_sect,logical_sector_size);
  225.       }
  226.       if (error) {
  227.           s->s_dev = 0;
  228. -         printk("Unsupported FS parameters\n");
  229.           return NULL;
  230.       }
  231.       s->s_magic = MSDOS_SUPER_MAGIC;
  232. --- 222,231 ----
  233.               sectors),b->total_sect,logical_sector_size);
  234.       }
  235.       if (error) {
  236. +         if (!silent)
  237. +             printk("VFS: Can't find a valid MSDOS filesystem on dev 0x%04x.\n",
  238. +                    s->s_dev);
  239.           s->s_dev = 0;
  240.           return NULL;
  241.       }
  242.       s->s_magic = MSDOS_SUPER_MAGIC;
  243. *** linux/fs/nfs/inode.c.~1~    Mon Mar 29 22:33:22 1993
  244. --- linux/fs/nfs/inode.c    Mon Mar 29 22:34:05 1993
  245. ***************
  246. *** 50,56 ****
  247.    * Later we can add other mount parameters like caching values.
  248.    */
  249.   
  250. ! struct super_block *nfs_read_super(struct super_block *sb, void *raw_data)
  251.   {
  252.       struct nfs_mount_data *data = (struct nfs_mount_data *) raw_data;
  253.       struct nfs_server *server;
  254. --- 50,57 ----
  255.    * Later we can add other mount parameters like caching values.
  256.    */
  257.   
  258. ! struct super_block *nfs_read_super(struct super_block *sb, void *raw_data,
  259. !                    int silent)
  260.   {
  261.       struct nfs_mount_data *data = (struct nfs_mount_data *) raw_data;
  262.       struct nfs_server *server;
  263. *** linux/fs/proc/inode.c.~1~    Mon Mar 29 22:33:18 1993
  264. --- linux/fs/proc/inode.c    Mon Mar 29 22:34:05 1993
  265. ***************
  266. *** 40,46 ****
  267.       proc_statfs
  268.   };
  269.   
  270. ! struct super_block *proc_read_super(struct super_block *s,void *data)
  271.   {
  272.       lock_super(s);
  273.       s->s_blocksize = 1024;
  274. --- 40,47 ----
  275.       proc_statfs
  276.   };
  277.   
  278. ! struct super_block *proc_read_super(struct super_block *s,void *data, 
  279. !                     int silent)
  280.   {
  281.       lock_super(s);
  282.       s->s_blocksize = 1024;
  283. *** linux/fs/super.c.~1~    Mon Mar 29 22:33:18 1993
  284. --- linux/fs/super.c    Tue Mar 30 09:20:55 1993
  285. ***************
  286. *** 17,22 ****
  287. --- 17,23 ----
  288.   
  289.   #include <asm/system.h>
  290.   #include <asm/segment.h>
  291.    
  292.   /*
  293.    * The definition of file_systems that used to be here is now in
  294. ***************
  295. *** 29,34 ****
  296. --- 30,37 ----
  297.   extern void wait_for_keypress(void);
  298.   extern void fcntl_init_locks(void);
  299.   
  300. + extern int root_mountflags;
  301.   struct super_block super_block[NR_SUPER];
  302.   
  303.   /* this is initialized in init/main.c */
  304. ***************
  305. *** 118,124 ****
  306.           sb->s_op->put_super(sb);
  307.   }
  308.   
  309. ! static struct super_block * read_super(dev_t dev,char *name,int flags,void *data)
  310.   {
  311.       struct super_block * s;
  312.       struct file_system_type *type;
  313. --- 121,128 ----
  314.           sb->s_op->put_super(sb);
  315.   }
  316.   
  317. ! static struct super_block * read_super(dev_t dev,char *name,int flags,
  318. !                        void *data, int silent)
  319.   {
  320.       struct super_block * s;
  321.       struct file_system_type *type;
  322. ***************
  323. *** 142,148 ****
  324.       }
  325.       s->s_dev = dev;
  326.       s->s_flags = flags;
  327. !     if (!type->read_super(s,data)) {
  328.           s->s_dev = 0;
  329.           return NULL;
  330.       }
  331. --- 146,152 ----
  332.       }
  333.       s->s_dev = dev;
  334.       s->s_flags = flags;
  335. !     if (!type->read_super(s,data, silent)) {
  336.           s->s_dev = 0;
  337.           return NULL;
  338.       }
  339. ***************
  340. *** 308,314 ****
  341.           iput(dir_i);
  342.           return -EBUSY;
  343.       }
  344. !     sb = read_super(dev,type,flags,data);
  345.       if (!sb || sb->s_covered) {
  346.           iput(dir_i);
  347.           return -EBUSY;
  348. --- 312,318 ----
  349.           iput(dir_i);
  350.           return -EBUSY;
  351.       }
  352. !     sb = read_super(dev,type,flags,data,0);
  353.       if (!sb || sb->s_covered) {
  354.           iput(dir_i);
  355.           return -EBUSY;
  356. ***************
  357. *** 452,465 ****
  358.       for (fs_type = file_systems; fs_type->read_super; fs_type++) {
  359.           if (!fs_type->requires_dev)
  360.               continue;
  361. !         sb = read_super(ROOT_DEV,fs_type->name,0,NULL);
  362.           if (sb) {
  363.               inode = sb->s_mounted;
  364.               inode->i_count += 3 ;    /* NOTE! it is logically used 4 times, not 1 */
  365.               sb->s_covered = inode;
  366. !             sb->s_flags = 0;
  367.               current->pwd = inode;
  368.               current->root = inode;
  369.               return;
  370.           }
  371.       }
  372. --- 456,472 ----
  373.       for (fs_type = file_systems; fs_type->read_super; fs_type++) {
  374.           if (!fs_type->requires_dev)
  375.               continue;
  376. !         sb = read_super(ROOT_DEV,fs_type->name,root_mountflags,NULL,1);
  377.           if (sb) {
  378.               inode = sb->s_mounted;
  379.               inode->i_count += 3 ;    /* NOTE! it is logically used 4 times, not 1 */
  380.               sb->s_covered = inode;
  381. !             sb->s_flags = root_mountflags;
  382.               current->pwd = inode;
  383.               current->root = inode;
  384. +             printk ("VFS: Mounted root (%s filesystem)%s.\n",
  385. +                 fs_type->name,
  386. +                 (sb->s_flags & MS_RDONLY) ? " readonly" : "");
  387.               return;
  388.           }
  389.       }
  390. *** linux/fs/xiafs/inode.c.~1~    Mon Mar 29 22:33:18 1993
  391. --- linux/fs/xiafs/inode.c    Mon Mar 29 22:34:05 1993
  392. ***************
  393. *** 55,61 ****
  394.       xiafs_statfs
  395.   };
  396.   
  397. ! struct super_block *xiafs_read_super(struct super_block *s, void *data)
  398.   {
  399.       struct buffer_head *bh;
  400.       struct xiafs_super_block *sp;
  401. --- 55,62 ----
  402.       xiafs_statfs
  403.   };
  404.   
  405. ! struct super_block *xiafs_read_super(struct super_block *s, void *data,
  406. !                      int silent)
  407.   {
  408.       struct buffer_head *bh;
  409.       struct xiafs_super_block *sp;
  410. ***************
  411. *** 75,81 ****
  412.           s->s_dev = 0;
  413.       unlock_super(s);
  414.       brelse(bh);
  415. !     printk("XIA-FS: super magic mismatch\n");
  416.       return NULL;
  417.       }
  418.       s->s_blocksize = sp->s_zone_size;
  419. --- 76,84 ----
  420.           s->s_dev = 0;
  421.       unlock_super(s);
  422.       brelse(bh);
  423. !     if (!silent)
  424. !         printk("VFS: Can't find a xiafs filesystem on dev 0x%04x.\n",
  425. !            dev);
  426.       return NULL;
  427.       }
  428.       s->s_blocksize = sp->s_zone_size;
  429. *** linux/include/linux/ext2_fs.h.~1~    Mon Mar 29 22:33:19 1993
  430. --- linux/include/linux/ext2_fs.h    Mon Mar 29 22:34:06 1993
  431. ***************
  432. *** 231,237 ****
  433.   extern void ext2_truncate (struct inode *);
  434.   extern void ext2_put_super (struct super_block *);
  435.   extern void ext2_write_super (struct super_block *);
  436. ! extern struct super_block * ext2_read_super (struct super_block *,void *);
  437.   extern void ext2_read_inode (struct inode *);
  438.   extern void ext2_write_inode (struct inode *);
  439.   extern void ext2_put_inode (struct inode *);
  440. --- 231,237 ----
  441.   extern void ext2_truncate (struct inode *);
  442.   extern void ext2_put_super (struct super_block *);
  443.   extern void ext2_write_super (struct super_block *);
  444. ! extern struct super_block * ext2_read_super (struct super_block *,void *,int);
  445.   extern void ext2_read_inode (struct inode *);
  446.   extern void ext2_write_inode (struct inode *);
  447.   extern void ext2_put_inode (struct inode *);
  448. *** linux/include/linux/ext_fs.h.~1~    Mon Mar 29 22:33:19 1993
  449. --- linux/include/linux/ext_fs.h    Mon Mar 29 22:34:06 1993
  450. ***************
  451. *** 89,95 ****
  452.   extern void ext_truncate(struct inode *);
  453.   extern void ext_put_super(struct super_block *);
  454.   extern void ext_write_super(struct super_block *);
  455. ! extern struct super_block *ext_read_super(struct super_block *,void *);
  456.   extern void ext_read_inode(struct inode *);
  457.   extern void ext_write_inode(struct inode *);
  458.   extern void ext_put_inode(struct inode *);
  459. --- 89,95 ----
  460.   extern void ext_truncate(struct inode *);
  461.   extern void ext_put_super(struct super_block *);
  462.   extern void ext_write_super(struct super_block *);
  463. ! extern struct super_block *ext_read_super(struct super_block *,void *,int);
  464.   extern void ext_read_inode(struct inode *);
  465.   extern void ext_write_inode(struct inode *);
  466.   extern void ext_put_inode(struct inode *);
  467. *** linux/include/linux/fs.h.~1~    Mon Mar 29 22:33:19 1993
  468. --- linux/include/linux/fs.h    Mon Mar 29 22:34:06 1993
  469. ***************
  470. *** 301,307 ****
  471.   };
  472.   
  473.   struct file_system_type {
  474. !     struct super_block *(*read_super) (struct super_block *, void *);
  475.       char *name;
  476.       int requires_dev;
  477.   };
  478. --- 301,307 ----
  479.   };
  480.   
  481.   struct file_system_type {
  482. !     struct super_block *(*read_super) (struct super_block *, void *, int);
  483.       char *name;
  484.       int requires_dev;
  485.   };
  486. *** linux/include/linux/iso_fs.h.~1~    Mon Mar 29 22:33:20 1993
  487. --- linux/include/linux/iso_fs.h    Mon Mar 29 22:34:06 1993
  488. ***************
  489. *** 163,169 ****
  490.   extern int isofs_bmap(struct inode *,int);
  491.   
  492.   extern void isofs_put_super(struct super_block *);
  493. ! extern struct super_block *isofs_read_super(struct super_block *,void *);
  494.   extern void isofs_read_inode(struct inode *);
  495.   extern void isofs_put_inode(struct inode *);
  496.   extern void isofs_statfs(struct super_block *, struct statfs *);
  497. --- 163,169 ----
  498.   extern int isofs_bmap(struct inode *,int);
  499.   
  500.   extern void isofs_put_super(struct super_block *);
  501. ! extern struct super_block *isofs_read_super(struct super_block *,void *,int);
  502.   extern void isofs_read_inode(struct inode *);
  503.   extern void isofs_put_inode(struct inode *);
  504.   extern void isofs_statfs(struct super_block *, struct statfs *);
  505. *** linux/include/linux/minix_fs.h.~1~    Mon Mar 29 22:33:20 1993
  506. --- linux/include/linux/minix_fs.h    Mon Mar 29 22:34:07 1993
  507. ***************
  508. *** 99,105 ****
  509.   
  510.   extern void minix_truncate(struct inode *);
  511.   extern void minix_put_super(struct super_block *);
  512. ! extern struct super_block *minix_read_super(struct super_block *,void *);
  513.   extern void minix_read_inode(struct inode *);
  514.   extern void minix_write_inode(struct inode *);
  515.   extern void minix_put_inode(struct inode *);
  516. --- 99,105 ----
  517.   
  518.   extern void minix_truncate(struct inode *);
  519.   extern void minix_put_super(struct super_block *);
  520. ! extern struct super_block *minix_read_super(struct super_block *,void *,int);
  521.   extern void minix_read_inode(struct inode *);
  522.   extern void minix_write_inode(struct inode *);
  523.   extern void minix_put_inode(struct inode *);
  524. *** linux/include/linux/msdos_fs.h.~1~    Mon Mar 29 22:33:20 1993
  525. --- linux/include/linux/msdos_fs.h    Mon Mar 29 22:34:08 1993
  526. ***************
  527. *** 168,174 ****
  528.   
  529.   extern void msdos_put_inode(struct inode *inode);
  530.   extern void msdos_put_super(struct super_block *sb);
  531. ! extern struct super_block *msdos_read_super(struct super_block *s,void *data);
  532.   extern void msdos_statfs(struct super_block *sb,struct statfs *buf);
  533.   extern int msdos_bmap(struct inode *inode,int block);
  534.   extern void msdos_read_inode(struct inode *inode);
  535. --- 168,175 ----
  536.   
  537.   extern void msdos_put_inode(struct inode *inode);
  538.   extern void msdos_put_super(struct super_block *sb);
  539. ! extern struct super_block *msdos_read_super(struct super_block *s,
  540. !                         void *data,int);
  541.   extern void msdos_statfs(struct super_block *sb,struct statfs *buf);
  542.   extern int msdos_bmap(struct inode *inode,int block);
  543.   extern void msdos_read_inode(struct inode *inode);
  544. *** linux/include/linux/nfs_fs.h.~1~    Mon Mar 29 22:33:21 1993
  545. --- linux/include/linux/nfs_fs.h    Mon Mar 29 22:34:08 1993
  546. ***************
  547. *** 98,104 ****
  548.   
  549.   /* linux/fs/nfs/inode.c */
  550.   
  551. ! extern struct super_block *nfs_read_super(struct super_block *sb, void *data);
  552.   extern struct inode *nfs_fhget(struct super_block *sb, struct nfs_fh *fhandle,
  553.                      struct nfs_fattr *fattr);
  554.   extern void nfs_refresh_inode(struct inode *inode, struct nfs_fattr *fattr);
  555. --- 98,105 ----
  556.   
  557.   /* linux/fs/nfs/inode.c */
  558.   
  559. ! extern struct super_block *nfs_read_super(struct super_block *sb, 
  560. !                       void *data,int);
  561.   extern struct inode *nfs_fhget(struct super_block *sb, struct nfs_fh *fhandle,
  562.                      struct nfs_fattr *fattr);
  563.   extern void nfs_refresh_inode(struct inode *inode, struct nfs_fattr *fattr);
  564. *** linux/include/linux/proc_fs.h.~1~    Mon Mar 29 22:33:21 1993
  565. --- linux/include/linux/proc_fs.h    Mon Mar 29 22:34:08 1993
  566. ***************
  567. *** 15,21 ****
  568.       char * name;
  569.   };
  570.   
  571. ! extern struct super_block *proc_read_super(struct super_block *,void *);
  572.   extern void proc_put_inode(struct inode *);
  573.   extern void proc_put_super(struct super_block *);
  574.   extern void proc_statfs(struct super_block *, struct statfs *);
  575. --- 15,21 ----
  576.       char * name;
  577.   };
  578.   
  579. ! extern struct super_block *proc_read_super(struct super_block *,void *,int);
  580.   extern void proc_put_inode(struct inode *);
  581.   extern void proc_put_super(struct super_block *);
  582.   extern void proc_statfs(struct super_block *, struct statfs *);
  583. *** linux/include/linux/xia_fs.h.~1~    Mon Mar 29 22:33:21 1993
  584. --- linux/include/linux/xia_fs.h    Mon Mar 29 22:34:08 1993
  585. ***************
  586. *** 92,98 ****
  587.   
  588.   extern void xiafs_truncate(struct inode *);
  589.   extern void xiafs_put_super(struct super_block *);
  590. ! extern struct super_block *xiafs_read_super(struct super_block *,void *);
  591.   extern void xiafs_read_inode(struct inode *);
  592.   extern void xiafs_write_inode(struct inode *);
  593.   extern void xiafs_put_inode(struct inode *);
  594. --- 92,98 ----
  595.   
  596.   extern void xiafs_truncate(struct inode *);
  597.   extern void xiafs_put_super(struct super_block *);
  598. ! extern struct super_block *xiafs_read_super(struct super_block *,void *,int);
  599.   extern void xiafs_read_inode(struct inode *);
  600.   extern void xiafs_write_inode(struct inode *);
  601.   extern void xiafs_put_inode(struct inode *);
  602. *** linux/init/main.c.~1~    Mon Mar 29 11:39:17 1993
  603. --- linux/init/main.c    Tue Mar 30 10:26:59 1993
  604. ***************
  605. *** 19,24 ****
  606. --- 19,25 ----
  607.   #include <linux/unistd.h>
  608.   #include <linux/string.h>
  609.   #include <linux/timer.h>
  610. + #include <linux/fs.h>
  611.   
  612.   extern unsigned long * prof_buffer;
  613.   extern unsigned long prof_len;
  614. ***************
  615. *** 80,85 ****
  616. --- 81,87 ----
  617.   #define EXT_MEM_K (*(unsigned short *)0x90002)
  618.   #define DRIVE_INFO (*(struct drive_info *)0x90080)
  619.   #define SCREEN_INFO (*(struct screen_info *)0x90000)
  620. + #define MOUNT_ROOT_RDONLY (*(unsigned short *)0x901F2)
  621.   #define RAMDISK_SIZE (*(unsigned short *)0x901F8)
  622.   #define ORIG_ROOT_DEV (*(unsigned short *)0x901FC)
  623.   #define AUX_DEVICE_INFO (*(unsigned char *)0x901FF)
  624. ***************
  625. *** 153,158 ****
  626. --- 155,161 ----
  627.   
  628.   unsigned char aux_device_present;
  629.   int ramdisk_size;
  630. + int root_mountflags = 0;
  631.   
  632.   static char command_line[80] = { 0, };
  633.   
  634. ***************
  635. *** 233,238 ****
  636. --- 236,243 ----
  637.       if (memory_end > 16*1024*1024)
  638.           memory_end = 16*1024*1024;
  639.   #endif
  640. +     if (MOUNT_ROOT_RDONLY)
  641. +         root_mountflags |= MS_RDONLY;
  642.       if ((unsigned long)&end >= (1024*1024)) {
  643.           memory_start = (unsigned long) &end;
  644.           low_memory_start = 4096;
  645.